package cn.itcast.tanhua.mytanhuadubbointerface.api;

import cn.itcast.tanhua.pojo.FollowUser;
import cn.itcast.tanhua.pojo.Video;
import cn.itcast.tanhua.vo.PageInfo;
import cn.itcast.tanhua.vo.PageResult;

import java.util.List;

/**
 * 关注用户、取消关注用户
 *
 * @author 郭文亮
 * @since 2021/12/1 14:14
 */
public interface VideoApi {
    /**
     * 关注用户
     *
     * @param followUser 关注用户的实体信息
     * @return 关注用户的结果
     * @throws Exception 可能出现的异常
     */
    Boolean userFocus(FollowUser followUser) throws Exception;

    /**
     * 取消关注用户
     *
     * @param followUser 关注用户的实体信息
     * @return 取消关注的结果
     * @throws Exception 可能出现的异常
     */
    Boolean userUnFocus(FollowUser followUser) throws Exception;

    /**
     * 上传视频
     * @param video 上传视频的实体信息
     * @return 上传视频的结果
     * @throws Exception 可能出现的异常
     */
    Boolean saveVideo(Video video) throws Exception;

    /**
     * 查询小视频
     * @param page 页码
     * @param pageSize 每页条数
     * @param userId 当前用户id
     * @return 查询结果
     * @throws Exception 可能出现的异常
     */
    PageInfo<Video> querySmallVideos(Integer page, Integer pageSize, Long userId, List<Long> blacklist) throws Exception;

    Video queryVideoById(String publishId);

    /**
     * 查询评论数
     *
     * @param publishId
     * @return
     */
    Long queryCommentCount(String publishId);

}
